﻿using System.Collections.Generic;
using System.Dynamic;
using MongoDB.Bson.Serialization.Attributes;

namespace ApiManage.Models.MongoMappings.Project
{
    /// <summary>
    /// 
    /// </summary>
    public class InterfaceInfo : BaseMongoRecord
    {
        /// <summary>
        /// 
        /// </summary>
        public string ModuleId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Url { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Method { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Version { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Developers { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string DockingPeople { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ServersProgress { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ClientProgress { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ResponseContentType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ExpandoObject RequestHeader { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ExpandoObject RequestOther { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ExpandoObject ResponseParam { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<ExpandoObject> ResponseParamDesc { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string RequestContentType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ExpandoObject RequestParam { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<ExpandoObject> RequestParamDesc { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ExpandoObject ResponseSuccExam { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ExpandoObject ResponseErrExam { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public ExpandoObject Host { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int? Sort { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool UseJwt { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string CreateUser { get; set; }
        /// <summary>
        /// 
        /// </summary>
        [BsonIgnore]
        public string DevelopersName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        [BsonIgnore]
        public string DockingPeopleName { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class InterfaceInfoExtend : InterfaceInfo
    {
        /// <summary>
        /// 
        /// </summary>
        public new string Id { get; set; }
    }
}
